package com.inforich.orderManage.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inforich.common.mybatis.Location;
import com.inforich.common.mybatis.LocationHandler;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.inforich.common.core.domain.BaseParamEntity;
import com.inforich.common.annotation.Excel;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.inforich.common.core.domain.BaseEntity;

/**
 * 运输对象 br_transport
 *
 * @author hjm
 * @date 2022-10-26
 */
@Data
@EqualsAndHashCode()
@Accessors(chain = true)
@TableName("br_transport")
public class Transport extends BaseParamEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @TableId(type = IdType.AUTO)
  private String id;

  /**
   * 所属预约单
   */
  private String bookingId;

  /**
   * 项目
   */
  private String projectId;
  @Excel(name = "所属项目")
  @TableField(exist = false)
  private String projectName;
  /**
   * 处置地
   */
  private Long disposalLandId;
  @Excel(name = "资源利用化企业")
  @TableField(exist = false)
  private String disposalLandName;
  /**
   * 清运公司
   */
  private String transportCompanyId;
  @Excel(name = "所属公司")
  @TableField(exist = false)
  private String transportCompanyName;

  /**
   * 车牌号
   */
  @Excel(name = "车牌号")
  @Size(max = 255)
  private String carNumber;

  /**
   * 车辆类型
   */
  @Excel(name = "车辆类型")
  @Size(max = 255)
  private String carType;

  /**
   * 司机姓名
   */
  @Excel(name = "司机姓名")
  @Size(max = 255)
  private String driverName;

  /**
   * 司机电话
   */
  @Excel(name = "司机电话")
  @Size(max = 11)
  private String driverPhone;

  /**
   * 车辆载重(吨)
   */
  @Excel(name = "车辆载重(吨)")
  private BigDecimal vehicleLoad;

  /**
   * 开始时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date beginTime;

  /**
   * 开始位置
   */
  @TableField(typeHandler = LocationHandler.class)
  private Location beginLocation;

  /**
   * 签到地址
   */
  private String beginAddress;

  /**
   * 开始位置是否超出范围
   */
  @Excel(name = "开始位置是否超出范围", dictType = "sys_valid")
  private Integer beginLocationExceed;

  /**
   * 结束时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date endTime;

  /**
   * 结束位置
   */
  @TableField(typeHandler = LocationHandler.class)
  private Location endLocation;

  /**
   * 送达地址
   */
  private String endAddress;

  /**
   * 结束位置是否超出范围
   */
  @Excel(name = "结束位置是否超出范围", dictType = "sys_valid")
  private Integer endLocationExceed;

  /**
   * 运输状态( 10:进行中;20:已完成 )
   */
  @Excel(name = "运输状态", dictType = "transport_state")
  private Long state;

  /**
   * 所属司机( 司机 )
   */
  private Long driverId;

  /**
   * 分配时间
   */
  private Date allocationTime;

  /**
   * 开始图片
   */
  private String beginImage;
  /**
   * 结束图片
   */
  private String endImage;
}